package com.qf.controller;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * @WebServlet中指定当前servlet的访问路径
 * @author 千锋健哥
 */
@WebServlet("/servlet2")
public class TestServlet2 extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //执行下面的dopost方法处理业务
        this.doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        //在接收参数之前设置字符集编码, 防止中文乱码
        req.setCharacterEncoding("utf-8");

        /**
         * HttpServletRequest对象叫做请求对象, 主要用来获取浏览器发给服务器的参数和数据
         * 获取浏览器请求发来的参数, 根据参数名字获取
         * 例如: http://localhost:8080/servlet2?name=zhangsan&age=18
         * name 和age是参数名称, 必须根据参数名称获取
         *
         */
        String name = req.getParameter("name");
        //页面编码方式默认是ISO8859-1编码, 也就是英文编码, 所以如果接收到的中文还是乱码需要手动转码.
        //name = new String(name.getBytes("ISO8859-1"), "utf-8");

        String age = req.getParameter("age");

        System.out.println("=======" + name);
        System.out.println("=======" + age);
        System.out.println("执行了get方法");

        /**
         * HttpServletResponse是响应对象, 服务器返回给浏览器的数据主要通过这个对象返回
         */
        //设置响应的字符集编码, 以及输出内容的格式
        resp.setContentType("text/html; charset=utf-8");
        resp.getWriter().println("====name===" + name);
        resp.getWriter().println("====age===" + age);
        resp.getWriter().println("<html>");
        resp.getWriter().println("<head>");
        resp.getWriter().println("<title>测试打印的页面是否好用</title>");
        resp.getWriter().println("</head>");
        resp.getWriter().println("<body>");
        resp.getWriter().println("<h1>" + name + "</h1>");
        resp.getWriter().println("</body>");
        resp.getWriter().println("</html>");
    }

}
